<?php
namespace app\admin\model;
use think\Model;
use think\Db;
use think\Request;

class Base  extends Model
{
    /**
     * @var string
     * 单例初始化数据实例化对象,引用模型层必须大写首字母
     */
       public $obj="";
       //初始化表
       public $table='';
       //实例化类
       public $object='';
       public  function _initialize($table){
           if(empty($this->obj)){
               $this->obj=Db::table($table);
               $this->table=$table;
           }else{
               $this->table=$table;
               return $this->obj;
           }

       }

    /**
     * @param $table
     * @param $date
     * @return bool
     * 添加多条数据数据公共方法
     */
       public  function addall($table,$date){
           if(Db::table($table)->insertAll($date)){
               return true;
           }else{
               return false;
           }
       }

    /**
     * @param $table
     * @param $date
     * @return bool
     * 添加单条数据数据公共方法
     */
    public  function add($table,$date){
        $result=Db::table($table)->insert($date);
        if($result){
            return true;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $id
     * @param $date
     * @return bool
     * 修改数据公共方法
     */
     public function upd($table,$id,$date){
            $result=Db::table($table)->where("id='$id'")->update($date);
           if($result){
               return true;
           }else{
               return false;
           }
     }

    /**
     * @param $table
     * @param $date
     * @return bool
     * 修改数据公共方法
     */
    public function updall($table,$date){
        $result=Db::table($table)->update($date);
        if($result){
            return true;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $id
     * @return bool
     * 真实删除数据公共方法
     */
    public function del($table,$id){
        if(Db::table($table)->where("id=".$id)->delete()){
            return true;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $id
     * @param $date
     * @return bool
     * 假删除公共方法
     */
    public function status($table,$id,$date){
        if(Db::table($table)->where("id=".$id)->update($date)){
            return true;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @return bool|false|\PDOStatement|string|\think\Collection
     * 查询数据公共方法
     */
    public  function sel($table){
        if($result=Db::table($table)->select()){
            return $result;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $deleted
     * @return bool|false|\PDOStatement|string|\think\Collection
     * 条件查询数据公共方法
     */
    public  function selOne($table,$deleted){
        $result=Db::table($table)->where("deleted='$deleted'")->select();
        if($result){
            return $result;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $deleted
     * @return bool|false|\PDOStatement|string|\think\Collection
     * 单条数据的查询公共方法
     */
    public  function selectOne($table,$field,$deleted){
        $result=Db::table($table)->where("$field='$deleted'")->select();
        if($result){
            return $result;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $deleted
     * @return bool|false|mixed|\PDOStatement|string|\think\Collection
     * 条件查询某个字段
     */
    public  function selField($table,$fieldName,$deleted){
        $result = Db::table($table)->where("deleted=1")->wherelike($fieldName,"%$deleted%")->select();
        if($result){
            return $result;
        }else{
            return false;
        }
    }

    /**
     * @param $table
     * @param $公共分页
     */
    public function paging($table,$num){
        $list = Db::table($table)->paginate($num);
        return $list;
    }
}